Digital communications networks employ various codecs when encoding a signal for transmission. The particular codec utilized is often a function of the nature of the underlying information, the encoding device's capabilities, and the required level of quality of service (QoS). A typical digital mobile telephone handset, for example, will encode a signal using a codec that is optimized for telephone conversations supported by the handset and capable of providing a sufficient level of QoS. Ideally, the codec utilized is also compatible with the network hardware required to complete the call. Often, however, the codec utilized by the encoding endpoint is not supported by the destination endpoint and/or network hardware that must be traversed en route to the destination endpoint. For example, a call may be placed from an endpoint in one provider's network to an endpoint in a different provider's network. Each of the providers may utilize different codecs for encoding calls. Such a scenario necessitates the use of a transcoder to decode the signal from the originating endpoint's selected codec and then re-encode the signal using the destination endpoint's selected codec.
Codecs are designed with specific performance requirements in mind and their performance may vary dramatically based on the difference between the conditions in which they were designed to operate and actual conditions. For example, while one codec may provide excellent QoS under normal network load, its QoS may decline to unacceptable levels under demanding network conditions. Similarly, another codec may provide relatively acceptable levels of QoS under demanding network conditions, but may fail to provide an excellent level of QoS, even under ideal network conditions. A provider deciding which of the two codecs to employ may have to prioritize reliable service and, in turn, place a relatively low ceiling on the level of QoS that it is able to offer its users.
Accordingly, a need exists for methods, systems, and computer readable media for selecting a codec pair based on network conditions.